/*
 * @desc 获取url参数
 * @param variable{String} 传入的url
 * @return {Boolean,String} false：没有参数 String：URL参数
 * @version 1.0.0
 * */

export function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
    return false;
}

/*
 * @desc 去除Url参数空值
 * @param variable{String} 传入的url
 * @return {String} 返回没有空值的URL
 * @version 1.0.0
 * */

export function getUrl(variable) {
    var bases = variable.split("?")[0];
    var query = variable.split("?")[1];
    var obj = {};
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        window.console.log(pair);
        if (pair[1] != "") {
            obj[pair[0]] = pair[1];
        }
    }
    for (let key in obj) {
        bases += "?" + key + "=" + obj[key];
    }
    return bases;
}

/*
 * @desc 将日期转化为YYYY-mm-dd
 * @param variable{String} 传入的date
 * @return {String} 返回YYYY-mm-dd
 * @version 1.0.0
 * */
export function formatDate(date) {
    let d = new Date(date),
        month = "" + (d.getMonth() + 1),
        day = "" + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) month = "0" + month;
    if (day.length < 2) day = "0" + day;
    return [year, month, day].join("-");
}

//总秒数转换成天小时分秒
export let tempToTime = $secs => {
    // console.log($secs);
    var dayDiff = Math.floor($secs / (24 * 3600)); //计算出相差天数
    var leave1 = $secs % (24 * 3600); //计算天数后剩余的秒数
    var hours = Math.floor(leave1 / 3600); //计算出小时数
    //计算相差分钟数
    var leave2 = leave1 % 3600; //计算小时数后剩余的秒数
    var minutes = Math.floor(leave2 / 60); //计算相差分钟数
    //计算相差秒数
    var leave3 = leave2 % 60; //计算分钟数后剩余的秒数
    var seconds = Math.round(leave3);
    return [dayDiff, hours, minutes, seconds];
};
export let tempToTime2 = $secs => {
    //console.log($secs);
    var dayDiff = Math.floor($secs / (24 * 3600)); //计算出相差天数
    var leave1 = $secs % (24 * 3600); //计算天数后剩余的秒数
    var hours = Math.floor(leave1 / 3600); //计算出小时数
    //计算相差分钟数
    var leave2 = leave1 % 3600; //计算小时数后剩余的秒数
    var minutes = Math.floor(leave2 / 60); //计算相差分钟数
    //计算相差秒数
    var leave3 = leave2 % 60; //计算分钟数后剩余的秒数
    var seconds = Math.round(leave3);
    return dayDiff + "天" + hours + "小时" + minutes + "分" + seconds + "秒";
};
//将13位的时间戳，转换为2020-02-02 20:20:20
export function getYMDHMS(timestamp) {
    let time = new Date(timestamp);
    let year = time.getFullYear();
    let month = time.getMonth() + 1;
    let date = time.getDate();
    let hours = time.getHours();
    let minute = time.getMinutes();
    let second = time.getSeconds();

    if (month < 10) {
        month = "0" + month;
    }
    if (date < 10) {
        date = "0" + date;
    }
    if (hours < 10) {
        hours = "0" + hours;
    }
    if (minute < 10) {
        minute = "0" + minute;
    }
    if (second < 10) {
        second = "0" + second;
    }
    return (
        year + "-" + month + "-" + date + " " + hours + ":" + minute + ":" + second
    );
}
/*  Mon Oct 10 2016 18:41:01 GMT+0800 (中国标准时间)转换成HH:mm:ss */
/* 用于 videoProgram/timeSeries 页面 */

export function  dateFormat(timestamp){
    var date = new Date(timestamp);//时间戳为10位需*1000，时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    var D = date.getDate() + ' ';
    var h = (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()) + ':' ;
    var m = (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes()) + ':' ;
    var s = (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds());
    //return Y+M+D+h+m+s;
    return h+m+s;
}


/*
 * @desc string转换对象
 */
export function strToJson(str) {
    if (str === null || typeof str == "undefined") {
        return false;
    }
    var jsonName = "Content type: application/json";
    var newStr = str.substring(jsonName.length).trim();
    return JSON.parse(newStr);
}

/*
 * @desc 初始化表单
 * obj {Object} 表单对象
 * dom {Dom} 表单dom
 * newObj {Object} 新对象，主要针对比如选择默认值是0，就可以定义{sel: 0},通过obj的object.assign结合
 * */
export function resetForm(obj, dom = null, newObj = {}) {
    if (Object.keys(obj).length == 0) {
        return {};
    }
    var objs = JSON.parse(JSON.stringify(obj));
    for (let key in objs) {
        objs[key] = "";
    }
    let result = Object.assign(objs, newObj); // 这样的，因为前面我把所有参数都支撑''，但是有一些你需要传默认数据1，newObj把默认数据穿进去就行

    if (dom != null) {
        dom.resetFields();
    }
    return result;
}

/* 
  判断两个数组是否有相同值
  如果从权限对象取到的value数组为空就不显示，没有权限进入，
  如果对象中没有这个值，也就是undefined，就不做校验，菜单也显示
  @params
  {Array} arr1 长度短的数组
  {Array} arr2 长度长的数组
  @return
  {Boolean} true/false
*/
export function haveSame(arr1, arr2) {
    var flag = false;
    if (
        Array.isArray(arr1) &&
        Array.isArray(arr2) &&
        arr2.length > 0 &&
        arr1.length > 0
    ) {
        flag = arr2.some(item => {
            return arr1.includes(item);
        });
    }

    return flag; //flag返回的是 true false
}

/* 
  判断两个数组是否有相同值
  如果从权限对象取到的value数组为空就不显示，没有权限进入，
  如果对象中没有这个值，也就是undefined，就不做校验，菜单也显示
  @params
  {Array} arr1 长度短的数组
  {Array} arr2 长度长的数组
  @return
  {Boolean} true/false
*/
export function haveSameAnd(arr1, arr2) {
    var flag = false;
    if (
        Array.isArray(arr1) &&
        Array.isArray(arr2) &&
        arr2.length > 0 &&
        arr1.length > 0
    ) {
        flag = arr2.every(item => {
            return arr1.includes(item);
        });
    }

    return flag; //flag返回的是 true false
}